﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using Database;

namespace Communication
{
    [ServiceContract]
    public interface IClientCommunication
    {
        [OperationContract(IsOneWay = true)]
        void ReceiveJoin(User client, bool ans, string systemMsg);
        [OperationContract(IsOneWay = true)]
        void ReceiveLogout();

        [OperationContract(IsOneWay = true)]
        void ReceiveNotify(string notifyMsg);

        [OperationContract(IsOneWay = true)]
        void ReceiveForumUsersList(List<User> uList);
        [OperationContract(IsOneWay = true)]
        void ReceiveSystemUsersList(List<string> uList);

        [OperationContract(IsOneWay = true)]
        void AutherizationError();
        
        [OperationContract(IsOneWay = true)]
        void ReceiveForum(Forum forum);
        [OperationContract(IsOneWay = true)]
        void ReceiveSubForum(SubForum subforum);
        [OperationContract(IsOneWay = true)]
        void ReceiveThread(Thread thread);

        [OperationContract(IsOneWay = true)]
        void ReceiveSystemStatistics(string stats, User me);
        [OperationContract(IsOneWay = true)]
        void ReceiveForumStatistics(string stats);

        [OperationContract(IsOneWay = true)]
        void RecieveError(string error);

        [OperationContract(IsOneWay = true)]
        void RecieveCodeConfirm();
    }
}
